package cn.com.dhcc.turbo.service.monitor;

import cn.com.dhcc.turbo.service.monitor.compute.CurrentDayRowsCompute;
import cn.com.dhcc.turbo.service.monitor.compute.MonitorComputeInterface;

/**
 * 
 * @author qiao
 * @2014-6-6 @上午10:58:37
 */
public  enum QUOTA{
	//软硬件及通道监控
	/*LOCAL_TLQ_DY_LQ_MSG_NUM("本地TonlinkQ创建本地队列的最大消息数"),
	LOCAL_TLQ_DY_SQ_MSG_NUM("本地TonlinkQ创建发送队列的最大消息数"),
	LOCAL_TLQ_DY_LQ_DATA_BUFF("本地TonlinkQ本地队列数据存储区预留空间"),
	LOCAL_TLQ_DY_SQ_DATA_BUFF("本地TonlinkQ发送队列数据存储区预留空间"),
	LOCAL_TLQ_NOT_CREATE_QUEUE("本地TonlinkQ未成功创建的队列数"),*/
	
	//连接状态
	REMOTE_FTP_CONN_STATUS("远端FTP连接状态"),
	REMOTE_TONGLINGKQ_CONN_STATUS("远端TLQ连接状态"),
	//-----------------------------日交换流量监控
	//发送-按节点
	STRUCTURED_SEND_FLOW_HOUR_FOR_NODE("结构化数据发送量(按节点)",CurrentDayRowsCompute.class),
	UNSTRUCTURED_SEND_FLOW_HOUR_FOR_NODE("非常规数据发送量(按节点)",CurrentDayRowsCompute.class),
	//发送-按域
    STRUCTURED_SEND_FLOW_HOUR_FOR_DOMAIN("结构化数据发送量(按域)",CurrentDayRowsCompute.class),
    UNSTRUCTURED_SEND_FLOW_HOUR_FOR_DOMAIN("非结构化数据发送量(按域)",CurrentDayRowsCompute.class),
    //发送-按适配器
    STRUCTURED_SEND_FLOW_HOUR_FOR_ADAPTER("结构化数据发送量(按适配器)",CurrentDayRowsCompute.class),
    UNSTRUCTURED_SEND_FLOW_HOUR_FOR_ADAPTER("非结构化数据发送量(按适配器)",CurrentDayRowsCompute.class),
    //接收-按节点
    STRUCTURED_RECV_FLOW_HOUR_FOR_NODE("结构化数据接收量(按节点)",CurrentDayRowsCompute.class),
    UNSTRUCTURED_RECV_FLOW_HOUR_FOR_NODE("非结构化数据接收量(按节点)",CurrentDayRowsCompute.class),
    //接收-按域
    STRUCTURED_RECV_FLOW_HOUR_FOR_DOMAIN("结构化数据接收量(按域)",CurrentDayRowsCompute.class),
    UNSTRUCTURED_RECV_FLOW_HOUR_FOR_DOMAIN("非结构化数据接收量(按节点)",CurrentDayRowsCompute.class),
    //接收-按适配器
    STRUCTURED_RECV_FLOW_HOUR_FOR_ADAPTER("结构化数据接收量(按适配器)",CurrentDayRowsCompute.class),
    UNSTRUCTURED_RECV_FLOW_HOUR_FOR_ADAPTER("非结构化数据接收量(按适配器)",CurrentDayRowsCompute.class),
    //-----------------------------结构化数据交换监控
    //发送-按适配器
    STRUCTURED_SEND_WAIT_NUM_FOR_ADAPTER("待发送任务数量(按适配器)"),
    STRUCTURED_SEND_SENDING_NUM_FOR_ADAPTER("发送中任务数量(按适配器)"),
    STRUCTURED_SEND_SUCCESS_NUM_FOR_ADAPTER("发送成功任务数量(按适配器)"),
    STRUCTURED_SEND_FAIL_NUM_FOR_ADAPTER("发送失败任务数量(按适配器)"),
    STRUCTURED_SEND_SUCCESS_RATE_FOR_ADAPTER("数据发送成功率(按适配器)"),
    //发送-按域
    STRUCTURED_SEND_WAIT_NUM_FOR_DOMAIN("待发送任务数量(按域)"),
    STRUCTURED_SEND_SENDING_NUM_FOR_DOMAIN("发送中任务数量(按适配器)"),
    STRUCTURED_SEND_SUCCESS_NUM_FOR_DOMAIN("发送成功任务数量(按域)"),
    STRUCTURED_SEND_FAIL_NUM_FOR_DOMAIN("发送失败任务数量(按域)"),
    STRUCTURED_SEND_SUCCESS_RATE_FOR_DOMAIN("数据发送成功率(按域)"),
    //发送-按节点
    STRUCTURED_SEND_WAIT_NUM_FOR_NODE("待发送任务数量(按节点)"),
    STRUCTURED_SEND_SENDING_NUM_FOR_NODE("发送中任务数量(按节点)"),
    STRUCTURED_SEND_SUCCESS_NUM_FOR_NODE("发送成功任务数量(按节点)"),
    STRUCTURED_SEND_FAIL_NUM_FOR_NODE("发送失败任务数量(按节点)"),
    STRUCTURED_SEND_SUCCESS_RATE_FOR_NODE("数据发送成功率(按节点)"),
    //接收-按适配器
    STRUCTURED_RECV_SUCCESS_NUM_FOR_ADAPTER("接收成功任务数量(按适配器)"),
    STRUCTURED_RECV_FAIL_NUM_FOR_ADAPTER("接收失败任务数量(按适配器)"),
    STRUCTURED_RECV_SUCCESS_RATE_FOR_ADAPTER("数据接收成功率(按适配器)"),
    //接收-按域
    STRUCTURED_RECV_SUCCESS_NUM_FOR_DOMAIN("接收成功任务数量(按域)"),
    STRUCTURED_RECV_FAIL_NUM_FOR_DOMAIN("接收失败任务数量(按域)"),
    STRUCTURED_RECV_SUCCESS_RATE_FOR_DOMAIN("数据接收成功率(按域)"),
    //接收-按节点
    STRUCTURED_RECV_SUCCESS_NUM_FOR_NODE("接收成功任务数量(按节点)"),
    STRUCTURED_RECV_FAIL_NUM_FOR_NODE("接收失败任务数量(按节点)"),
    STRUCTURED_RECV_SUCCESS_RATE_FOR_NODE("数据接收成功率(按节点)"),
    //-----------------------------非结构化数据交换监控
    //发送-按适配器
    UNSTRUCTURED_SEND_WAIT_NUM_FOR_ADAPTER("待发送任务数量(按适配器)"),
    UNSTRUCTURED_SEND_SENDING_NUM_FOR_ADAPTER("发送中任务数量(按适配器)"),
    UNSTRUCTURED_SEND_SUCCESS_NUM_FOR_ADAPTER("发送成功任务数量(按适配器)"),
    UNSTRUCTURED_SEND_FAIL_NUM_FOR_ADAPTER("发送失败任务数量(按适配器)"),
    UNSTRUCTURED_SEND_SUCCESS_RATE_FOR_ADAPTER("数据发送成功率(按适配器)"),
    //发送-按域
    UNSTRUCTURED_SEND_WAIT_NUM_FOR_DOMAIN("待发送任务数量(按域)"),
    UNSTRUCTURED_SEND_SENDING_NUM_FOR_DOMAIN("发送中任务数量(按域)"),
    UNSTRUCTURED_SEND_SUCCESS_NUM_FOR_DOMAIN("发送成功任务数量(按域)"),
    UNSTRUCTURED_SEND_FAIL_NUM_FOR_DOMAIN("发送失败任务数量(按域)"),
    UNSTRUCTURED_SEND_SUCCESS_RATE_FOR_DOMAIN("数据发送成功率(按域)"),
    //发送-节点
    UNSTRUCTURED_SEND_WAIT_NUM_FOR_NODE("待发送任务数量(按节点)"),
    UNSTRUCTURED_SEND_SENDING_NUM_FOR_NODE("发送中任务数量(按节点)"),
    UNSTRUCTURED_SEND_SUCCESS_NUM_FOR_NODE("发送成功任务数量(按节点)"),
    UNSTRUCTURED_SEND_FAIL_NUM_FOR_NODE("发送失败任务数量(按节点)"),
    UNSTRUCTURED_SEND_SUCCESS_RATE_FOR_NODE("数据发送成功率(按节点)"),
    //-接收-按适配器
    UNSTRUCTURED_RECV_SUCCESS_NUM_FOR_ADAPTER("接收成功任务数量(按适配器)"),
    UNSTRUCTURED_RECV_FAIL_NUM_FOR_ADAPTER("接收失败任务数量(按适配器)"),
    UNSTRUCTURED_RECV_SUCCESS_RATE_FOR_ADAPTER("数据接收成功率(按适配器)"),
	//-接收-按域
    UNSTRUCTURED_RECV_SUCCESS_NUM_FOR_DOMAIN("接收成功任务数量(按域)"),
    UNSTRUCTURED_RECV_FAIL_NUM_FOR_DOMAIN("接收失败任务数量(按域)"),
    UNSTRUCTURED_RECV_SUCCESS_RATE_FOR_DOMAIN("数据接收成功率(按域)"),
    //-接收-按节点
    UNSTRUCTURED_RECV_SUCCESS_NUM_FOR_NODE("接收成功任务数量(按节点)"),
    UNSTRUCTURED_RECV_FAIL_NUM_FOR_NODE("接收失败任务数量(按节点)"),
	UNSTRUCTURED_RECV_SUCCESS_RATE_FOR_NODE("数据接收成功率(按节点)"),
	 //-----------------------------内外网交换监控
	GAP_TO_SEND_NUM("网闸待发送量"),
	GAP_TO_SEND_SIZE("网闸待发送大小"),
	GAP_STATUS("网闸状态"),
	CARVED_DISCS_SUM("待刻盘量"),
	CARVED_DISS_SIZE("待刻盘大小"),
	 //-----------------------------通道监控
	TONGLINGKQ_CONN_STATUS("TonlinkQ连接状态"),
//	TONGLINGKQ_QUEUE_NUM("TonlinkQ队列个数"),
	TONGLINGKQ_QUEUE_MSGNUM_RATE("TonlinkQ队列消息数使用率"),
	TONGLINGKQ_QUEUE_STATUS("TonlinkQ队列状态"),
	FTP_FS_USED_RATE("节点FTP文件系统使用率"),
	FTP_CONN_STATUS("FTP连接状态"),
	SEND_FLOW_HOUR_FOR_NODE("节点数据发送量",CurrentDayRowsCompute.class),
	NET_CONN_STATUS("节点网络连接状态"),
	DATA_EXCH_STATUS("数据交换状态");


	private String desc;
	private Class<? extends MonitorComputeInterface> handler; //
	private QUOTA(String desc){
		this.desc = desc;
	}
	private QUOTA(String desc,Class<? extends MonitorComputeInterface> handler){
		this.desc = desc;
		this.handler = handler;
	}
	
	public String getDesc() {
		return desc;
	}
	public Class<? extends MonitorComputeInterface> getHandler() {
		return handler;
	}
	public String getCode() {
		return this.name().toLowerCase();
	}
}
